#pragma once

#include <boostext/exception.hpp>
#include <QtSql/QSqlError>




namespace db
{
	/**
	 * This is the exception class that is used throughout the library.
	 */
	class exception
		: public boostext::exception
	{
	public:

		typedef boost::error_info<struct actual_type_, QSqlError>    error_type;

	public:

		exception(const std::string& what)
			: boostext::exception(what)
		{}

		exception(const std::string& what, QSqlError error)
			: boostext::exception(what)
		{
			*this << error_type(error);
		}



		QSqlError sqlError() const
		{
			return extract_info<error_type>(QSqlError());
		}
	};
	///////////////////////////////////////////////////////////////////////////////////////////////
}
///////////////////////////////////////////////////////////////////////////////////////////////////
